package com.macro.mall.ums.service.login;

import com.github.pagehelper.Page;
import com.macro.mall.ums.domain.MemberLoginLog;
import com.macro.mall.ums.entity.MemberLoginLogEntity;
import com.macro.mall.ums.service.login.bo.InsertMemberLoginLogInput;
import com.macro.mall.ums.service.login.bo.PagedQueryMemberLoginLogInput;

import java.util.List;

/**
 * 会员登录记录Service
 *
 * @author xuyanjun
 * @date 2019-12-09
 */
public interface MemberLoginLogService {

    /**
     * 新增会员登录记录
     *
     * @param input input
     * @return 新增id
     */
    long insert(InsertMemberLoginLogInput input);

    /**
     * 删除会员登录记录
     *
     * @param id id
     */
    void delete(long id);

    /**
     * 根据Id获取会员登录记录
     *
     * @param id id
     * @return 会员登录记录
     */
    MemberLoginLogEntity getById(long id);

    /**
     * 根据批量Id获取会员登录记录
     *
     * @param batchIds 批量ids
     * @return 会员登录记录集合
     */
    List<MemberLoginLogEntity> listByBatchIds(List<Long> batchIds);

    /**
     * 分页查询
     *
     * @param input input
     * @return 分页的会员登录记录
     */
    Page<MemberLoginLogEntity> pagedQuery(PagedQueryMemberLoginLogInput input);

    /**
     * 将实体对象转换成domain对象
     *
     * @param memberLoginLogEntity 实体
     * @return memberLoginLog
     */
    MemberLoginLog entityToDomain(MemberLoginLogEntity memberLoginLogEntity);

    /**
     * 将实体对象转换成domain对象
     *
     * @param memberLoginLogEntities 实体
     * @return memberLoginLogs
     */
    List<MemberLoginLog> entityToDomain(List<MemberLoginLogEntity> memberLoginLogEntities);

}